home *** CD-ROM | disk | FTP | other *** search
- <?xml version="1.0" encoding="UTF-8" ?>
- <!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
- <?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
- <!-- $Revision: 1.3.2.8 $ -->
-
- <!--
- Copyright 2002-2004 The Apache Software Foundation
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- -->
-
- <manualpage metafile="netware.xml.meta">
- <parentdocument href="./">Platform Specific Notes</parentdocument>
-
- <title>Using Apache With Novell NetWare</title>
-
- <summary>
-
- <p>This document explains how to install, configure and run
- Apache 2.0 under Novell NetWare 6.0 and above. If you find any bugs,
- or wish to contribute in other ways, please use our
- <a href="http://httpd.apache.org/bug_report.html">bug reporting
- page.</a></p>
-
- <p>The bug reporting page and dev-httpd mailing list are <em>not</em>
- provided to answer questions about configuration or running Apache.
- Before you submit a bug report or request, first consult this document, the
- <a href="../faq/">Frequently Asked Questions</a> page and the other
- relevant documentation topics. If you still have a question or problem,
- post it to the <a href="news://developer-forums.novell.com/novell.devsup.webserver">
- novell.devsup.webserver</a> newsgroup, where many Apache users are more than
- willing to answer new and obscure questions about using Apache on NetWare.</p>
-
- <p>Most of this document assumes that you are installing Apache
- from a binary distribution. If you want to compile Apache
- yourself (possibly to help with development, or to track down
- bugs), see the section on <a href="#comp">Compiling Apache for
- NetWare</a> below.</p>
-
- </summary>
-
- <section id="req">
-
- <title>Requirements</title>
-
- <p>Apache 2.0 is designed to run on NetWare 6.0 service pack 3
- and above. If you are running a service pack less
- than SP3, you must install the latest
- <a href="http://developer.novell.com/ndk/libc.htm">NetWare Libraries
- for C (LibC)</a>.</p>
-
- <p>NetWare service packs are available <a
- href="http://support.novell.com/misc/patlst.htm#nw">here</a>.</p>
-
- <p>Apache 2.0 for NetWare can also be run in a NetWare 5.1 environment
- as long as the latest service pack or the latest version
- of the <a href="http://developer.novell.com/ndk/libc.htm">NetWare Libraries
- for C (LibC)</a> has been installed . <strong>WARNING:</strong> Apache 2.0
- for NetWare has not been targeted for or tested in this environment.</p>
-
- </section>
-
- <section id="down">
-
- <title>Downloading Apache for NetWare</title>
-
- <p>Information on the latest version of Apache can be found on
- the Apache web server at <a
- href="http://www.apache.org/">http://www.apache.org/</a>. This
- will list the current release, any more recent alpha or
- beta-test releases, together with details of mirror web and
- anonymous ftp sites. Binary builds of the latest releases of
- Apache 2.0 for NetWare can be downloaded from
- <a href="http://www.apache.org/dist/httpd/binaries/netware">here</a>.</p>
-
- </section>
-
- <section id="inst">
-
- <title>Installing Apache for NetWare</title>
-
- <p>There is no Apache install program for NetWare currently. If you
- are building Apache 2.0 for NetWare from source, you will need to
- copy the files over to the server manually.</p>
-
- <p>Follow these steps to install Apache on NetWare from the
- binary download (assuming you will install to
- <code>sys:/apache2</code>):</p>
-
- <ul>
- <li>Unzip the binary download file to the root of the <code>SYS:</code>
- volume (may be installed to any volume)</li>
-
- <li>Edit the <code>httpd.conf</code> file setting <directive
- module="core">ServerRoot</directive> and <directive
- module="core">ServerName</directive> along with any file path values
- to reflect your correct server settings</li>
-
- <li>Add <code>SYS:/APACHE2</code> to the search path, for example:
- <example>SEARCH ADD SYS:\APACHE2</example>
- </li>
-
- </ul>
-
- <p>Follow these steps to install Apache on NetWare manually
- from your own build source (assuming you will install to
- <code>sys:/apache2</code>):</p>
-
- <ul>
- <li>Create a directory called <code>Apache2</code> on a
- NetWare volume</li>
-
- <li>Copy <code>APACHE2.NLM</code>, <code>APRLIB.NLM</code>
- to <code>SYS:/APACHE2</code></li>
-
- <li>Create a directory under <code>SYS:/APACHE2</code>
- called <code>BIN</code></li>
-
- <li>Copy <code>HTDIGEST.NLM</code>, <code>HTPASSWD.NLM</code>,
- <code>HTDBM.NLM</code>, <code>LOGRES.NLM</code>, <code>ROTLOGS.NLM</code>
- to <code>SYS:/APACHE2/BIN</code></li>
-
- <li>Create a directory under <code>SYS:/APACHE2</code>
- called <code>CONF</code></li>
-
- <li>Copy the <code>HTTPD-STD.CONF</code> file to the
- <code>SYS:/APACHE2/CONF</code> directory and rename to
- <code>HTTPD.CONF</code></li>
-
- <li>Copy the <code>MIME.TYPES</code>, <code>CHARSET.CONV</code> and
- <code>MAGIC</code> files to <code>SYS:/APACHE2/CONF</code> directory</li>
-
- <li>Copy all files and subdirectories in <code>\HTTPD-2.0\DOCS\ICONS</code>
- to <code>SYS:/APACHE2/ICONS</code></li>
-
- <li>Copy all files and subdirectories in <code>\HTTPD-2.0\DOCS\MANUAL</code>
- to <code>SYS:/APACHE2/MANUAL</code></li>
-
- <li>Copy all files and subdirectories in <code>\HTTPD-2.0\DOCS\ERROR</code>
- to <code>SYS:/APACHE2/ERROR</code></li>
-
- <li>Copy all files and subdirectories in <code>\HTTPD-2.0\DOCS\DOCROOT</code>
- to <code>SYS:/APACHE2/HTDOCS</code></li>
-
- <li>Create the directory <code>SYS:/APACHE2/LOGS</code>
- on the server</li>
-
- <li>Create the directory <code>SYS:/APACHE2/CGI-BIN</code>
- on the server</li>
-
- <li>Create the directory <code>SYS:/APACHE2/MODULES</code>
- and copy all nlm modules into the <code>modules</code> directory</li>
-
- <li>Edit the <code>HTTPD.CONF</code> file searching for all
- <code>@@Value@@</code> markers and replacing them with the
- appropriate setting</li>
-
- <li>Add <code>SYS:/APACHE2</code> to the search path, for example:
- <example>SEARCH ADD SYS:\APACHE2</example>
- </li>
- </ul>
-
- <p>Apache may be installed to other volumes besides the default <code>SYS</code> volume.</p>
-
- <p>During the build process, adding the keyword "install" to the makefile command line
- will automatically produce a complete distribution package under the subdirectory
- <code>DIST</code>. Install Apache by simply copying the distribution that was produced
- by the makfiles to the root of a NetWare volume (see: <a href="#comp">Compiling Apache for
- NetWare</a> below).</p>
-
- </section>
-
- <section id="run">
-
- <title>Running Apache for NetWare</title>
-
- <p>To start Apache just type <code>apache</code> at the
- console. This will load apache in the OS address space. If you
- prefer to load Apache in a protected address space you may
- specify the address space with the load statement as follows:</p>
-
- <example>
- load address space = apache2 apache2
- </example>
-
- <p>This will load Apache into an address space called apache2.
- Running multiple instances of Apache concurrently on NetWare is
- possible by loading each instance into its own protected
- address space.</p>
-
- <p>After starting Apache, it will be listening to port 80
- (unless you changed the <directive module="mpm_common">Listen</directive>
- directive in the configuration files).
- To connect to the server and access the default page,
- launch a browser and enter the server's name or address. This
- should respond with a welcome page, and a link to the Apache
- manual. If nothing happens or you get an error, look in the
- <code>error_log</code> file in the <code>logs</code>
- directory.</p>
-
- <p>Once your basic installation is working, you should
- configure it properly by editing the files in the
- <code>conf</code> directory.</p>
-
- <p>To unload Apache running in the OS address space just type
- the following at the console:</p>
-
- <example>
- unload apache2
- </example>
-
- <p>or</p>
-
- <example>
- apache2 shutdown
- </example>
-
- <p>If apache is running in a protected address space specify the
- address space in the unload statement:</p>
-
- <example>
- unload address space = apache2 apache2
- </example>
-
- <p>When working with Apache it is important to know how it will
- find the configuration files. You can specify a configuration
- file on the command line in two ways:</p>
-
- <ul>
- <li><code>-f</code> specifies a path to a particular
- configuration file</li>
- </ul>
-
- <example>
- apache2 -f "vol:/my server/conf/my.conf"
- </example>
-
- <example>
- apache -f test/test.conf
- </example>
-
- <p>In these cases, the proper <directive module="core">ServerRoot</directive>
- should be set in the configuration file.</p>
-
- <p>If you don't specify a configuration file name with <code>-f</code>,
- Apache will use the file name compiled into the server, usually
- <code>conf/httpd.conf</code>. Invoking Apache with the <code>-V</code>
- switch will display this value labeled as <code>SERVER_CONFIG_FILE</code>.
- Apache will then determine its <directive module="core">ServerRoot</directive>
- by trying the following, in this order:</p>
-
- <ul>
- <li>A <code>ServerRoot</code> directive via a
- <code>-C</code> switch.</li>
-
- <li>The <code>-d</code> switch on the command line.</li>
-
- <li>Current working directory</li>
-
- <li>The server root compiled into the server.</li>
- </ul>
-
- <p>The server root compiled into the server is usually <code>sys:/apache2</code>.
- invoking apache with the <code>-V</code> switch will display this value labeled as
- <code>HTTPD_ROOT</code>.</p>
-
- <p>Apache 2.0 for NetWare includes a set of command line directives that can
- be used to modify or display information about the running instance of the
- web server. These directives are only available while Apache is running. Each
- of these directives must be preceded by the keyword <code>APACHE2</code>.</p>
-
- <dl>
- <dt>RESTART</dt>
- <dd>Instructs Apache to terminate all running worker
- threads as they become idle, reread the configuration file and restart each
- worker thread based on the new configuration.</dd>
-
- <dt>VERSION</dt>
- <dd>Displays version information about the currently
- running instance of Apache.</dd>
-
- <dt>MODULES</dt>
- <dd>Displays a list of loaded modules both built-in
- and external.</dd>
-
- <dt>DIRECTIVES</dt>
- <dd>Displays a list of all available directives.</dd>
-
- <dt>SETTINGS</dt>
- <dd>Enables or disables the thread status display
- on the console. When enabled, the state of each running threads is displayed
- on the Apache console screen.</dd>
-
- <dt>SHUTDOWN</dt>
- <dd>Terminates the running instance of the Apache
- web server.</dd>
-
- <dt>HELP</dt>
- <dd>Describes each of the runtime directives.</dd>
- </dl>
-
- <p>By default these directives are issued against the instance of Apache running
- in the OS address space. To issue a directive against a specific instance running
- in a protected address space, include the -p parameter along with the name of the
- address space. For more information type "apache2 Help" on the command line.</p>
-
- </section>
-
- <section id="use">
-
- <title>Configuring Apache for NetWare</title>
-
- <p>Apache is configured by reading configuration files usually stored
- in the <code>conf</code> directory. These are the same as files used
- to configure the Unix version, but there are a few different directives for
- Apache on NetWare. See the <a href="../">Apache
- documentation</a> for all the available directives.</p>
-
- <p>The main differences in Apache for NetWare are:</p>
-
- <ul>
- <li>
- <p>Because Apache for NetWare is multithreaded, it does not
- use a separate process for each request, as Apache does on some Unix
- implementations. Instead there are only threads running: a parent
- thread, and multiple child or worker threads which handle the requests.</p>
-
- <p>Therefore the "process"-management directives are different:</p>
-
- <p><directive module="mpm_common">MaxRequestsPerChild</directive> -
- Like the Unix directive, this controls how many requests
- a worker thread will serve before exiting. The recommended default,
- <code>MaxRequestsPerChild 0</code>, causes the thread to continue servicing
- request indefinitely. It is recommended on NetWare, unless there is some
- specific reason, that this directive always remain set to <code>0</code>.</p>
-
- <p><directive module="mpm_common">StartThreads</directive> -
- This directive tells the server how many threads it should start initially.
- The recommended default is <code>StartThreads 50</code>.</p>
-
- <p><directive module="mpm_common">MinSpareThreads</directive> -
- This directive instructs the server to spawn additional worker threads
- if the number of idle threads ever falls below this value. The recommended
- default is <code>MinSpareThreads 10</code>.</p>
-
- <p><directive module="mpm_common">MaxSpareThreads</directive> -
- This directive instructs the server to begin terminating worker threads
- if the number of idle threads ever exceeds this value. The recommended
- default is <code>MaxSpareThreads 100</code>.</p>
-
- <p><directive module="mpm_netware">MaxThreads</directive> -
- This directive limits the total number of work threads to a maximum
- value. The recommended default is <code>ThreadsPerChild 250</code>.</p>
-
- <p><directive module="mpm_netware">ThreadStackSize</directive> -
- This directive tells the server what size of stack to use
- for the individual worker thread. The recommended default
- is <code>ThreadStackSize 65536</code>.</p>
- </li>
-
- <li>
- <p>The directives that accept filenames as arguments must use
- NetWare filenames instead of Unix names. However, because Apache
- uses Unix-style names internally, forward slashes must be used
- rather than backslashes. It is recommended that all rooted file paths
- begin with a volume name. If omitted, Apache will assume the
- <code>SYS:</code> volume which may not be correct.</p>
- </li>
-
- <li>
- <p>Apache for NetWare has the ability to load modules at
- runtime, without recompiling the server. If Apache is
- compiled normally, it will install a number of optional
- modules in the <code>\Apache2\modules</code> directory.
- To activate these, or other modules, the <directive
- module="mod_so">LoadModule</directive> directive
- must be used. For example, to active the status module, use
- the following:</p>
-
- <example>
- LoadModule status_module modules/status.nlm
- </example>
-
- <p>Information on <a
- href="../mod/mod_so.html#creating">creating loadable
- modules</a> is also available.</p>
- </li>
- </ul>
-
- <section id="use-add">
-
- <title>Additional NetWare specific directives:</title>
-
- <ul>
- <li><directive module="core">CGIMapExtension</directive> -
- This directive maps a CGI file extension to a script interpreter.</li>
- </ul>
- <ul>
- <li><directive module="mod_nw_ssl">SecureListen</directive> -
- Enables SSL encryption for a specified port.</li>
- </ul>
- <ul>
- <li><directive module="mod_nw_ssl">NWSSLTrustedCerts</directive> -
- Adds trusted certificates that are used to create secure connections to proxied servers.</li>
- </ul>
- <ul>
- <li><directive module="mod_nw_ssl">NWSSLUpgradeable</directive> -
- Allow a connection created on the specified address/port to be upgraded to an SSL connection.</li>
- </ul>
-
- </section>
-
- </section>
-
- <section id="comp">
-
- <title>Compiling Apache for NetWare</title>
-
- <p>Compiling Apache requires MetroWerks CodeWarrior 6.x or higher. Once
- Apache has been built, it can be installed to the root of any NetWare
- volume. The default is the <code>sys:/Apache2</code> directory.</p>
-
- <p>Before running the server you must fill out the <code>conf</code>
- directory. Copy the file <code>HTTPD-STD.CONF</code> from the distribution
- <code>conf</code> directory and rename it to <code>HTTPD.CONF</code>.
- Edit the <code>HTTPD.CONF</code> file searching for all <code>@@Value@@</code>
- markers and replacing them with the appropriate setting. Copy over
- the <code>conf/magic</code> and <code>conf/mime.types</code> files as well.
- Alternatively, a complete distribution can be built by including the keyword
- <code>install</code> when invoking the makefiles.</p>
-
- <section id="comp-req">
-
- <title>Requirements:</title>
-
- <p>The following development tools are required to build
- Apache 2.0 for NetWare:</p>
-
- <ul>
- <li>Metrowerks CodeWarrior 6.0 or higher with the
- <a href="http://developer.novell.com/ndk/cwpdk.htm">NetWare PDK 3.0</a>
- or higher.</li>
-
- <li><a href="http://developer.novell.com/ndk/libc.htm">NetWare Libraries
- for C (LibC)</a></li>
-
- <li><a href="http://developer.novell.com/ndk/cldap.htm">LDAP Libraries
- for C</a></li>
-
- <li><a href="http://www.gzip.org/zlib/">ZLIB Compression Library source code</a></li>
-
- <li>AWK utility (awk, gawk or similar). AWK can be downloaded from
- <a href="http://developer.novell.com/ndk/apache.htm">http://developer.novell.com/ndk/apache.htm</a>.
- The utility must be found in your windows path and must be named <code>awk.exe</code>.</li>
-
- <li>To build using the makefiles, you will need GNU make version 3.78.1 (GMake) available at
- <a href="http://developer.novell.com/ndk/apache.htm">http://developer.novell.com/ndk/apache.htm</a>.</li>
- </ul>
-
- </section>
-
- <section id="comp-make">
-
- <title>Building Apache using the NetWare makefiles:</title>
-
- <ul>
- <li>Set the environment variable <code>NOVELLLIBC</code> to the
- location of the NetWare Libraries for C SDK, for example:
- <example>Set NOVELLLIBC=c:\novell\ndk\libc</example>
- </li>
-
- <li>Set the environment variable <code>METROWERKS</code> to the
- location where you installed the Metrowerks CodeWarrior compiler,
- for example:
- <example>Set METROWERKS=C:\Program Files\Metrowerks\CodeWarrior</example>
- If you installed to the default location <code>C:\Program
- Files\Metrowerks\CodeWarrior</code>, you don't need to set this.</li>
-
- <li>Set the environment variable <code>LDAPSDK</code> to the
- location where you installed the LDAP Libraries for C, for example:
- <example>Set LDAPSDK=c:\Novell\NDK\cldapsdk\NetWare\libc</example>
- </li>
-
- <li>Set the environment variable <code>ZLIBSDK</code> to the
- location where you installed the source code for the ZLib Library,
- for example:
- <example>Set ZLIBSDK=D:\NOVELL\zlib</example>
- </li>
-
- <li>Set the environment variable <code>AP_WORK</code> to the full path of
- the <code>\httpd-2.0</code> directory.</li>
-
- <li>Set the environment variable <code>APR_WORK</code> to the full path of
- the <code>\httpd-2.0\srclib\apr</code> directory.</li>
-
- <li>Make sure that the path to the AWK utility and the GNU make utility
- (<code>gmake.exe</code>) have been included in the system's
- <code>PATH</code> environment variable.</li>
-
- <li>Download the source code and unzip to an appropriate directory on
- your workstation.</li>
-
- <li>Change directory to <code>\httpd-2.0\srclib\apr-util\uri</code> and build
- <code>GENURI.nlm</code> by running "<code>gmake -f nwgnumakefile</code>".</li>
-
- <li>Copy the file <code>GENURI.nlm</code> to the <code>SYS:</code> volume
- of a NetWare server and run using the following command:
- <example>SYS:\genuri > sys:\uri_delims.h</example>
- </li>
-
- <li>Copy the file <code>uri_delims.h</code> to the directory
- <code>\httpd-2.0\srclib\apr-util\uri</code> on the build machine.</li>
-
- <li>Change directory to <code>\httpd-2.0\srclib\apr</code> and build APR
- by running "<code>gmake -f nwgnumakefile</code>"</li>
-
- <li>Change directory to <code>\httpd-2.0\srclib\pcre</code> and build
- <code>DFTABLES.nlm</code> by running "<code>gmake -f nwgnumakefile</code>"</li>
-
- <li>Change directory to <code>\httpd-2.0\server</code> and build
- <code>GENCHARS.nlm</code> by running "<code>gmake -f nwgnumakefile</code>"</li>
-
- <li>Copy the files <code>GENCHARS.nlm</code> and <code>DFTABLES.nlm</code>
- from their respective directories to the <code>SYS:</code> volume of a
- NetWare server and run them using the following commands:
- <example>
- SYS:\genchars > sys:\test_char.h<br />
- SYS:\dftables > sys:\chartables.c<br />
- </example>
- </li>
-
- <li>Copy the files <code>test_char.h</code> and <code>chartables.c</code>
- to the directory <code>\httpd-2.0\os\netware</code> on the build machine.</li>
-
- <li>Change directory to <code>\httpd-2.0</code> and build Apache by running
- "<code>gmake -f nwgnumakefile</code>". You can create a distribution directory by
- adding an install parameter to the command, for example:
- <example>gmake -f nwgnumakefile install</example>
- </li>
- </ul>
-
- </section>
-
- <section id="comp-add">
-
- <title>Additional make options</title>
-
- <ul>
- <li><code>gmake -f nwgnumakefile</code><p>Builds release versions of all of the
- binaries and copies them to a <code>\release</code> destination directory.</p></li>
-
- <li><code>gmake -f nwgnumakefile DEBUG=1</code><p>Builds debug versions of all of the
- binaries and copies them to a <code>\debug</code> destination directory.</p></li>
-
- <li><code>gmake -f nwgnumakefile install</code><p>Creates a complete Apache
- distribution with binaries, docs and additional support files in a
- <code>\dist\Apache2</code> directory.</p></li>
-
- <li><code>gmake -f nwgnumakefile installdev</code><p>Same as install but also creates a
- <code>\lib</code> and <code>\include</code> directory in the destination directory
- and copies headers and import files.</p></li>
-
- <li><code>gmake -f nwgnumakefile clean</code><p>Cleans all object files and binaries
- from the <code>\release</code> or <code>\debug</code> build areas depending on whether
- <code>DEBUG</code> has been defined.</p></li>
-
- <li><code>gmake -f nwgnumakefile clobber_all</code><p>Same as clean and also deletes
- the distribution directory if it exists.</p></li>
- </ul>
-
- </section>
-
- </section>
-
- </manualpage>
-
-